다음 테이블 "Products"("제품")을 살펴보겠습니다.
ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
---|---|---|---|---|---|
1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18.00 |
2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19.00 |
3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10.00 |
4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22.00 |
5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
"UnitsOnOrder" 열이 선택 사항이고 NULL 값을 포함할 수 있다고 가정합니다.
다음 명령 SELECT을 고려하십시오.
SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder)
FROM Products
위의 예에서 "UnitsOnOrder" 값 중 하나라도 NULL과 같으면 결과는 NULL이 됩니다.
MySQL IFNULL() 함수를 사용하면 표현식이 NULL과 같은 경우 대체 값을 반환할 수 있습니다.
SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products
또는 COALESCE() 함수를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products
SQL Server ISNULL() 함수를 사용하면 표현식에 NULL 값이 있는 경우 대체 값을 반환할 수 있습니다.
SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products
또는 COALESCE() 함수를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products
MS Access 함수 IsNull()는 표현식이 null이면 TRUE(-1)을 반환하고, 그렇지 않으면 FALSE(0)을 반환합니다.
SELECT ProductName, UnitPrice * (UnitsInStock + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder))
FROM Products
Oracle NVL() 함수는 동일한 결과를 얻습니다.
SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0))
FROM Products
또는 COALESCE() 함수를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products